package com.tfswx.fljdmxyy.service;

import com.tfswx.fljdmxyy.dto.gnfl.*;
import com.tfswx.fljdmxyy.query.gnfl.GnQueryResult;
import com.tfswx.fljdmxyy.query.gnfl.GnflQueryParam;
import com.tfswx.fljdmxyy.query.gnfl.GnflQueryResult;
import com.tfswx.fljdmxyy.query.gnfl.GnxxQueryResult;
import com.tfswx.newbie.boot.starter.page.PageParam;
import com.tfswx.newbie.boot.starter.page.PageResult;

import java.util.List;

/**
 * 功能分类业务接口
 *
 * @author: 陈文佳
 * @date: 2022-10-13
 **/
public interface GnflService {

    /**
     * 新增功能分类
     *
     * @param inputDTO 新增功能分类入参
     * @return GnflAddOutputDTO 新增功能分类出参
     */
    GnflAddOutputDTO addGnfl(GnflAddInputDTO inputDTO);

    /**
     * 修改功能分类
     *
     * @param inputDTO 修改功能分类入参
     * @return Boolean 修改功能分类出参
     */
    Boolean updateGnfl(GnflUpdateInputDTO inputDTO);

    /**
     * 查询功能分类
     *
     * @param inputDTO 查询功能分类入参
     * @return GnflGetOutputDTO 查询功能分类出参
     */
    GnflGetOutputDTO getGnfl(GnflGetInputDTO inputDTO);

    /**
     * 删除功能分类
     *
     * @param inputDTO 删除功能分类入参
     * @return Boolean 删除功能分类出参
     */
    Boolean deleteGnfl(GnflDeleteInputDTO inputDTO);

    /**
     * 分页获取功能分类列表
     *
     * @param param 分页获取功能分类列表入参
     * @return PageResult<GnflQueryResult> 分页获取功能分类列表出参
     */
    PageResult<GnflQueryResult> queryGnfl(PageParam<GnflQueryParam> param);

    /**
     * 查询功能列表
     *
     * @return List<GnQueryResult> 查询功能列表出参
     */
    List<GnQueryResult> queryGnlb();

    /**
     * 查询功能信息
     *
     * @return List<GnxxQueryResult> 查询功能信息出参
     */
    List<GnxxQueryResult> queryGnxx();
}